package com.whq.thrift.api.web.admin.db.requestlog;

import java.util.Map;

import org.apache.ibatis.jdbc.SqlBuilder;

import com.whq.common.StringUtil;

public class StatRequestHourApiDataSqlProvider {
	public String getSelectRecordSql(Map<String, Object> parameter) {
		SqlBuilder.BEGIN();
		SqlBuilder.SELECT("*");
		SqlBuilder.FROM("t_stat_hour_api_data");
		if ((parameter.get("dataDate") != null) && (StringUtil.isNotBlank(parameter.get("dataDate").toString()))) {
			SqlBuilder.WHERE("data_date=#{dataDate}");
		}

		if ((parameter.get("dataHour") != null) && (StringUtil.isNotBlank(parameter.get("dataHour").toString()))) {
			SqlBuilder.WHERE("data_hour=#{dataHour}");
		}

		if ((parameter.get("api") != null) && (StringUtil.isNotBlank(parameter.get("api").toString()))) {
			SqlBuilder.WHERE("api=#{api}");
		}

		if ((parameter.get("errorCode") != null) && (StringUtil.isNotBlank(parameter.get("errorCode").toString()))) {
			SqlBuilder.WHERE("error_code=#{errorCode}");
		}

		if ((parameter.get("ip") != null) && (StringUtil.isNotBlank(parameter.get("ip").toString()))) {
			SqlBuilder.WHERE("ip=#{ip}");
		}

		SqlBuilder.ORDER_BY("create_time desc");

		return SqlBuilder.SQL() + " limit #{beginIndex}, #{maxCount}";
	}
	
	public String getSelectCountSql(Map<String, Object> parameter) {
		SqlBuilder.BEGIN();
		SqlBuilder.SELECT("count(*)");
		SqlBuilder.FROM("t_stat_hour_api_data");
		if ((parameter.get("dataDate") != null) && (StringUtil.isNotBlank(parameter.get("dataDate").toString()))) {
			SqlBuilder.WHERE("data_date=#{dataDate}");
		}

		if ((parameter.get("dataHour") != null) && (StringUtil.isNotBlank(parameter.get("dataHour").toString()))) {
			SqlBuilder.WHERE("data_hour=#{dataHour}");
		}

		if ((parameter.get("api") != null) && (StringUtil.isNotBlank(parameter.get("api").toString()))) {
			SqlBuilder.WHERE("api=#{api}");
		}

		if ((parameter.get("errorCode") != null) && (StringUtil.isNotBlank(parameter.get("errorCode").toString()))) {
			SqlBuilder.WHERE("error_code=#{errorCode}");
		}

		if ((parameter.get("ip") != null) && (StringUtil.isNotBlank(parameter.get("ip").toString()))) {
			SqlBuilder.WHERE("ip=#{ip}");
		}

		return SqlBuilder.SQL();
	}
}
